Contemporary browsers allow plug-ins, which in general comprise hosted software code that interacts with the hosting browser/application to provide some desired functionality. One such plug-in is Microsoft® Silverlight™ which provides a platform that allows for development and hosting of rich web applications that often include animation, vector graphics and/or media (e.g., audio/video) content playback. A plug-in can host a third party application.
In general, this is related to a significant function of modern application development, namely componentization. A general idea behind componentization is to break up a large application in to smaller components that perform smaller portions of the larger task, are reusable and have a known interface. With componentization comes the ability for external (e.g., second or third) parties to author components for an existing application; for example, one modern web-based incarnation of this concept is a web mashup.
However, when non-first party components are used in an application, such as applications hosted by a plug-in, the trust boundary between the component and the application becomes important. A component should not be able to alter the appearance and functionality of user interface (UI) code, or monitor application data, and so forth unless the hosting application has specifically designed for this and expects it.